Designing a Programming Language to Provide Automated Self-testing for Formally Specified Software Components

نویسندگان

  • Roy Patrick Tan
  • Stephen H. Edwards
چکیده

Writing software is an error-prone activity. Compilers help detect some of these errors: syntactic mistakes plus those semantic mistakes that can be detected through the type system. However, locating faults beyond those detectable by the compiler (and other static analysis tools) is often relegated to the programmer, who must write thorough tests to ensure confidence in the correctness of the software. Although the specification and verification community has traditionally focused on decreasing software bugs by static verification, research has increasingly explored the dynamic analysis of the conformance of software components to its specifications. That is, researchers are investigating systems that can tell us whether a program’s behavior is consistent with its specification while the program is being executed. While dynamic techniques do not offer the same degree of assurance as full static verification, they may provide useful pragmatic benefits without the human intervention needed by currrent generation verification tools. When interpreted as a testing technique, dynamic analysis offers us a glimpse of future testing tools that offer another line of automatic error detection that augments the compiler, and helps the programmer reduce the number of tests he has to write. Modern unit testing tools such as JUnit allow some automation of the testing process. Specifically, they allow the automated execution of tests. The job of writing tests remains the responsibility of the programmer. In writing a test for a software component, the programmer must a. exercise a component such that a bug is likely to manifest; and b. write code to detect the bug. Current research suggests that the use of formal specifications, coupled with the right infrastructure, may alleviate much of the tedious process of writing the tests. For example, JML-JUnit [?] removes the need to write code that detects a component failure. It can act as a test-

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Software Architecture-based Testing Technique

A SOFTWARE ARCHITECTURE-BASED TESTING TECHNIQUE Zhenyi Jin, Ph.D. George Mason University, Fall 2000 Dissertation Director: Dr. A. Jefferson Offutt This dissertation defines a formal technique to test software systems at the architectural level, particularly for software systems developed using software Architecture Description Languages (ADL). There is a lack of formally defined testing techni...

متن کامل

Designing the Application of Verbal Fluency Test in Persian for Neurocognitive Evaluations

Verbal fluency test is a useful method to evaluate cognitive executive functions. Studies have shown that both types of verbal fluency test (phonemic and semantic) are influenced by brain damage. This test is rarely used by clinicians because it takes too much time to perform. Therefore, we decided to increase its speed and accuracy by designing a verbal fluency test application in Persian lang...

متن کامل

The Synchronous Approach to Designing Reactive Systems

Abstract. Synchronous programming is available through several formally defined languages having very different characteristics: ESTEREL is imperative, while LUSTRE and SIGNAL are declarative in style; STATECHARTS and ARGOS are graphical languages that allow one to program by constructing hierarchical automata. Our motivation for taking the synchronous design paradigm further, integrating imper...

متن کامل

Coordination models and languages for parallel programming

Most conventional approaches to parallel programming are based on some basic kinds of synchronized mechanisms and related models of concurrency control: shared variables, message passing, and remote procedure calls. Whereas these paradigms suffice to program parallel applications, they hardly provide abstractions adequate for programmers or language designers. Hence, parallel programming using ...

متن کامل

The Synchronous Approach to Designing Reactive Systems

Synchronousprogramming is available through several formally defined languages having very different characteristics: ESTEREL is imperative, while LUSTRE and SIGNAL are declarative in style; STATECHARTS and ARGOS are graphical languages that allow one to program by constructing hierarchical automata. Our motivation for taking the synchronous design paradigm further, integrating imperative, decl...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004